import axios from 'axios';
import { useUserStore } from '../stores/UserStore';
import router from '../router';
import { ElMessage } from 'element-plus'; // 引入 ElMessage 用于显示提示信息


const service = axios.create({
  baseURL: 'http://192.168.5.6:8888/', // 设置请求基础路径，可替换
  timeout: 15000, // 设置超时时间
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  }
});

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    const userStore = useUserStore();
    if (userStore.token) {
      config.headers.token = userStore.token;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  
  async (response) => {
    const code = response.data.code;

    if (code === 200) {
      return response;
    } else if (code === 4301 || code === 4302) {
      const userStore = useUserStore();
      userStore.clearUser(); // 清除用户信息
      await router.push('/').then(() => {
        ElMessage.error('未登录或登录已过期，请重新登录');
      })
      return Promise.reject(new Error('未登录'));
    } else {
      return response;
    }
  },
  (error) => {
    console.error('请求失败', error);
    return Promise.reject(error);
  }
);


export default service;